The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Today, many types of computing services rely on communication between client devices and host devices over one or more networks such as the public Internet. For example, users commonly use a wide variety of client devices (e.g., desktop and laptop computers, smartphones, tablet computers, etc.) to access many different types of network-based services, including websites, social networking platforms, media hosting services, and so forth. Typically, a client device accesses a network-based service by sending one or more network messages to host devices providing the services, which in turn process the network messages and return requested resources to the client devices. While such network-based services have greatly expanded the opportunity for new types of computing applications, use of these services may involve an increased number of possible points of failure in comparison to offline applications, including at the client device, at one or more networks connecting client devices to host devices, and among any number of host devices responsible for processing client device requests.
If an administrator of a network-based service is made aware of an issue experienced by one or more users accessing the service (e.g., an inability of users to access the service, slow performance, etc.), the administrator typically may investigate the problem by reviewing one or more log files or other diagnostic information generated by the host devices implementing the service. Such information may enable the administrator to troubleshoot various configuration or other issues related to the operation of the host devices. However, if the issue stems from a problem with a client device or a performance issue with one or more intermediary networks, the administrator typically has little to no means of investigating and diagnosing such issues since the administrator does not have direct access to those components.
Another issue complicating administration of network-based services is that an increasingly diverse set of client device types are used to access network-based services. Each of these types of devices may connect to host devices using a number of different network connection types (e.g., Ethernet, Wi-Fi, cellular networks, etc.) whose capabilities may vary widely depending on a particular type of connection, a current geographic location of the client device, particular software installed on the device, and any number of other variables. The diversity of client device types and network infrastructures connecting client devices to network-based services presents a number of challenges for a network-based service provider to provide a consistent experience across all client devices and to diagnose issues experienced by particular users of the service when they arise.